package aop02;

import exception.UserExistException;

import java.lang.reflect.Proxy;

/**
 * Author:shixiaojun@itany.com
 * Date:2022/3/8 9:11
 * Version:1.0-SNAPSHOT
 */
public class Test {

    public static void main(String[] args) {
        // 参数一:定义代理的类的类加载器(接口的实现类的类加载器)
        // 参数二:代理类要实现的接口列表
            // 即为:实现类要实现的接口列表
        // 参数三:指派方法调用的调用处理程序
            // 即:具体的交叉业务逻辑处理
        UserService userService = (UserService) Proxy.newProxyInstance(
                UserServiceImpl.class.getClassLoader(),
                UserServiceImpl.class.getInterfaces(),
                new LogInvocationHandler(new UserServiceImpl()));
        userService.login();
        System.out.println("*********************");
        try {
            userService.register();
            System.out.println("正常返回");
        } catch (UserExistException e) {
            e.printStackTrace();
            System.out.println("异常");
        }

        System.out.println("*********************");
        userService.add(1,2);
    }
}
